package com.itbaizhan.listener;

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpServletRequest;

/*监听HttpServletRequest生命周期的监听器
* 创建监听器，在web.xml配置数据*/
public class HttpServletRequestLifecycleListener implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("------start destroyed--------");
        System.out.println((HttpServletRequest)sre.getServletRequest());
        System.out.println("---------end destroy----------");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("------start Initialized--------");
        System.out.println((HttpServletRequest)sre.getServletRequest());
        System.out.println("---------end Initialized----------");
    }
}
/*HttpServletRequest对象的生命周期监听器
ServletRequestListener接口定义了ServletRequest
(是HttpServletRequest接口的父接口类型)对象生命周期的监听行为。
（因为这里的ServletRequest接口不只是Http协议使用，其它的协议也使用，所以是
ServletRequest接口）

void requestInitialized(ServletRequestEvent sre)
HttpServletRequest对象创建后会触发该监听方法，、
并将已创建HttpServletRequest对象传递到该方法中。
（反回的是ServletRequest 不是HttpServletRequest 所以要强转为HttpServletRequest
  ）

void requestDestroyed(ServletRequestEvent sre)
HttpServletRequest对象在销毁之前会触发该监听方法，
并将要销毁HttpServletRequest对象传递到该方法中。*/